<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="logo icon" href="static/logo.ico" type="image/x-icon">

<title>Welcome to the or-tools main documentation hub!</title>

	<link rel="stylesheet" href="static/documentation_hub.css">

</head>
<body>
    <div id="wrap">
    <div class="rightmenu">
    <div class="description">
    Open source <strong>operations research tools</strong> developed at <em><a href="http://www.google.com">Google</a></em>.
    </div>
 <div class="toolbar">
    <a href="http://code.google.com/p/or-tools/">Project</a>
    &nbsp; | &nbsp;
    <a href="https://plus.google.com/u/0/108010024297451468877/posts">Google+ Or-Tools</a> 
    &nbsp; | &nbsp;
    <a href="http://groups.google.com/group/or-tools-discuss">Mailing list</a>
    &nbsp; | &nbsp;
    <a href="http://code.google.com/p/or-tools/downloads/list">Download</a>
    &nbsp; | &nbsp;
    <a href="#new">What's new?</a>
    </div>
  
    </div>

    <a href="http://code.google.com/p/or-tools/"><img src="static/or2doodle.gif" width="25%"  alt="or-tools doodle" /></a>

    <hr>

<h1>Welcome to the <a href="https://code.google.com/p/or-tools/">or-tools library</a> main documentation hub</h1>


<div class="note">This is work in progress. Pages will be modified, moved or even removed.</div>

<div class="safe_trees">Please, think twice before printing. Be green, read on the screen! (Don't do like <a href="http://mail.google.com/mail/help/paper/more.html">those guys</a>!)<br />
</div>

<p>We are working hard to provide useful documentation. The documentation is distributed in several documents:</p> 
<ul>
	 <li>the <strong><a href="http://code.google.com/p/or-tools/wiki/AGettingStarted">Getting started</a></strong> page: explains how to download and install the library.</li>
	 <li>the <strong><a href="http://code.google.com/p/or-tools/wiki/Welcome?tm=6">wiki</a></strong>: contains nice examples. It will gradually be replaced by the user's manual.</li>
    <li>the <strong><a href="#user_manual">user's manual</a></strong>: a user's guide that explains the <em>Constraint Programming</em> part of the library.</li>
    <li>the <strong><a href="#tutorial_examples">tutorial examples</a></strong>: all the complete examples presented in the user's manual.</li> 
    <li>the <strong><a href="reference_manual/or-tools/index.html">reference manual</a></strong>: the documentation generated by <a href="http://www.doxygen.org/">doxygen</a>.</li>
    <li>the <strong><a href="#presentation_slides">presentation slides</a></strong>: intended for teaching sessions.</li>
    <li>the <strong><a href="#lab_sessions">lab sessions</a></strong>: 2x50 minutes modules.</li>
    <li>the <strong><a href="faq/index.html">F.A.Q.</a></strong>: frequently asked questions.</li>
 
</ul>

<p>You can find more details about these documents in the foreword of the manual.</p>
<p>For suggestions, remarks, corrections about the documentation, please contact 
<script type="text/javascript">
n = 'ortools.doc';
d = 'gmail.com';
document.write('<a href="ma');
document.write('ilto:' + n + '@');
document.write(d + '">');
document.write(n + '@');
document.write(d + '</a>.');
</script>
<noscript>ortools.doc(at)gmail.com</noscript>
Thank you very much.
</p>

<p>The or-tools documentation is covered by the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.</p>
<hr>
<h2>What's new?</h2>
<hr>
<p id="new">Here is a little summary:</p>
<pre id="verbatim">v.0.1.5: (2012-04-30 12:46:04)
------------------------------
* Major changes in the scripts to generate the doc:
  - the scripts have been completely rewritten and the directories
    completely rearranged.
* Minor enhancements to the manual:
  - html version: several graphic enhancements.
  - preface: comments from Hakan (Thanks again and again! ;-) )
  - chap2:
    + table with cryptarithmetic puzzle improved in both version.
    + figures "at a glance" done anew.
    + comments from Hakan.
* FAQ:
  - several graphic enhancements.
* Tutorials:
  - few corrections in the C++ code.
* Lab sessions:
  - chap2: questions posted.

</pre>

<p>This is the <a href="changes_list.txt">list of changes</a>.</p>

<hr>
<h2 id="user_manual">The User's Manual</h2>
<hr>
<p><font color=red><b>We are experiencing some troubles with the epub version. Stay tuned for more soon.</b></font></p>
<p>The epub version is still experimental. We recommend <a href="http://calibre-ebook.com/">calibre</a> to view the epub version. With this version, you should be able to convert the manual to the right format for your preferred handheld device.</p>

<h4>The manual</h4>
<ul>
<li>Progress at a glance: <a href="#manual_progress">Manual</a> - <a href="#documentation_progress">Documentation generation</a></li>
<li><a href="user_manual/index.html">Online version</a></li>
<li class="manual_download"><a href="http://or-tools.googlecode.com/files/user_manual_A4.v.0.1.5.pdf.zip">A4 pdf version</a></li>
<li class="manual_download"><a href="http://or-tools.googlecode.com/files/user_manual_USletter.v.0.1.5.pdf.zip">Letter pdf version</a></li>
<li class="manual_download"><a href="http://or-tools.googlecode.com/files/user_manual.v.0.1.5.epub.zip">epub version</a> (experimental)</li>
</ul>

<h4 id="progress">Progress at a glance:</h4>
<h5 id="manual_progress">Manual</h5>
<table width="100%">
<tr>
<td width="25%">Foreword</td>
<td>
<div class="progress_background">
  <div class="progress_foreground_green" style="width:95%;">
    <span>95%</span>
  </div>
</div>
</td>
</tr>
<th>Part I: Basics</th>
<tr>
<td width="25%">Chap1: Introduction </td>
<td>
<div class="progress_background">
  <div class="progress_foreground_red" style="width:5%;">
    <span>5%</span>
  </div>
</div>
</td>
</tr>
<tr>
<td>Chap2: First steps with or-tools</td>
<td>
<div class="progress_background">
  <div class="progress_foreground_green" style="width:93%;">
    <span>93%</span>
  </div>
</div>
</td>
</tr>
<tr>
<td>Chap3: Using objectives</td>
<td>
<div class="progress_background">
  <div class="progress_foreground_green" style="width:65%;">
    <span>65%</span>
  </div>
</div>
</td>
</tr>
<tr>
<td>Chap4: Reification</td>
<td>
<div class="progress_background">
  <div class="progress_foreground_red" style="width:0%;">
    <span>0%</span>
  </div>
</div>
</td>
</tr>
<th>Part II: Customization</th>
<tr>
<td>Chap5: Search primitives</td>
<td>
<div class="progress_background">
  <div class="progress_foreground_red" style="width:10%;">
    <span>10%</span>
  </div>
</div>
</td>
</tr>
<tr>
<td>Chap6: Large Neighbourhood Search</td>
<td>
<div class="progress_background">
  <div class="progress_foreground_red" style="width:0%;">
    <span>0%</span>
  </div>
</div>
</td>
</tr>
<tr>
<td>Chap7: Local Search operators</td>
<td>
<div class="progress_background">
  <div class="progress_foreground_red" style="width:0%;">
    <span>0%</span>
  </div>
</div>
</td>
</tr>
<tr>
<td>Chap8: Custom constraints</td>
<td>
<div class="progress_background">
  <div class="progress_foreground_red" style="width:0%;">
    <span>0%</span>
  </div>
</div>
</td>
</tr>
<th>Part III: Routing</th>
<tr>
<td>Chap9: TSP with constraints</td>
<td>
<div class="progress_background">
  <div class="progress_foreground_red" style="width:0%;">
    <span>0%</span>
  </div>
</div>
</td>
</tr>
<tr>
<td>Chap10: VRP with constraints</td>
<td>
<div class="progress_background">
  <div class="progress_foreground_red" style="width:0%;">
    <span>0%</span>
  </div>
</div>
</td>
</tr>
<th>Part IV: Technicalities</th>
<tr>
<td>Chap11: Utilities</td>
<td>
<div class="progress_background">
  <div class="progress_foreground_red" style="width:2%;">
    <span>2%</span>
  </div>
</div>
</td>
</tr>
<tr>
<td>Chap12: Modeling tricks</td>
<td>
<div class="progress_background">
  <div class="progress_foreground_red" style="width:0%;">
    <span>0%</span>
  </div>
</div>
</td>
</tr>
<tr>
<td>Chap13: Under the hood</td>
<td>
<div class="progress_background">
  <div class="progress_foreground_red" style="width:5%;">
    <span>5%</span>
  </div>
</div>
</td>
</tr>

<th>Appendices</th>
<tr>
<td>Index</td>
<td>
<div class="progress_background">
  <div class="progress_foreground_red" style="width:5%;">
    <span>5%</span>
  </div>
</div>
</td>
</tr>
<tr>
<td>Glossary</td>
<td>
<div class="progress_background">
  <div class="progress_foreground_red" style="width:0%;">
    <span>0%</span>
  </div>
</div>
</td>
</tr>
</table>

<h5 id="documentation_progress">Documentation generation</h5>

<table width="100%">
<th>Templates</th>
<tr>
<td width="25%">Manual</td>
<td>
<div class="progress_background">
  <div class="progress_foreground_green" style="width:83%;">
    <span>83%</span>
  </div>
</div>
</td>
</tr>
<tr>
<td>FAQ</td>
<td>
<div class="progress_background">
  <div class="progress_foreground_green" style="width:91%;">
    <span>91%</span>
  </div>
</div>
</td>
</tr>
<tr>
<td>Documentation hub</td>
<td>
<div class="progress_background">
  <div class="progress_foreground_green" style="width:75%;">
    <span>75%</span>
  </div>
</div>
</td>
</tr>
<tr>
<td>Lab sessions</td>
<td>
<div class="progress_background">
  <div class="progress_foreground_green" style="width:70%;">
    <span>70%</span>
  </div>
</div>
</td>
</tr>
<tr>
<td>Slides</td>
<td>
<div class="progress_background">
  <div class="progress_foreground_green" style="width:78%;">
    <span>78%</span>
  </div>
</div>
</td>
</tr>
<tr>
<td>Tutorials</td>
<td>
<div class="progress_background">
  <div class="progress_foreground_green" style="width:90%;">
    <span>90%</span>
  </div>
</div>
</td>
</tr>
<th>Scripts</th>
<tr>
<td width="25%">Manual</td>
<td>
<div class="progress_background">
  <div class="progress_foreground_green" style="width:85%;">
    <span>85%</span>
  </div>
</div>
</td>
</tr>
<tr>
<td>FAQ</td>
<td>
<div class="progress_background">
  <div class="progress_foreground_green" style="width:100%;">
    <span>100%</span>
  </div>
</div>
</td>
</tr>
<tr>
<td>Documentation hub</td>
<td>
<div class="progress_background">
  <div class="progress_foreground_green" style="width:100%;">
    <span>100%</span>
  </div>
</div>
</td>
</tr>
<tr>
<td>Lab sessions</td>
<td>
<div class="progress_background">
  <div class="progress_foreground_red" style="width:20%;">
    <span>20%</span>
  </div>
</div>
</td>
</tr>
<tr>
<td>Slides</td>
<td>
<div class="progress_background">
  <div class="progress_foreground_green" style="width:65%;">
    <span>65%</span>
  </div>
</div>
</td>
</tr>
<tr>
<td>Tutorials</td>
<td>
<div class="progress_background">
  <div class="progress_foreground_green" style="width:90%;">
    <span>90%</span>
  </div>
</div>
</td>
</tr>
<th>Global automation</th>
<tr>
<td>Installation</td>
<td>
<div class="progress_background">
  <div class="progress_foreground_red" style="width:0%;">
    <span>0%</span>
  </div>
</div>
</td>
</tr>
<tr>
<td>Global scripts</td>
<td>
<div class="progress_background">
  <div class="progress_foreground_red" style="width:30%;">
    <span>30%</span>
  </div>
</div>
</td>
</tr>
<tr>
<td>Testing</td>
<td>
<div class="progress_background">
  <div class="progress_foreground_red" style="width:40%;">
    <span>40%</span>
  </div>
</div>
</td>
</tr>
<th>Miscellaneous</th>
<tr>
<td>Doc on doc</td>
<td>
<div class="progress_background">
  <div class="progress_foreground_green" style="width:60%;">
    <span>60%</span>
  </div>
</div>
</td>
</tr>
<tr>
<td>collaborative working</td>
<td>
<div class="progress_background">
  <div class="progress_foreground_green" style="width:85%;">
    <span>85%</span>
  </div>
</div>
</td>
</tr>
<tr>
<td>Directory structure</td>
<td>
<div class="progress_background">
  <div class="progress_foreground_green" style="width:100%;">
    <span>100%</span>
  </div>
</div>
</td>
</tr>
</table>
<br>
<hr>
<h2 id="tutorial_examples">The tutorial examples</h2>
<hr>
<p>You can download all the code at once or pick a single file in the list below. All files are encoded in UTF-8 and we use LF (Unix) newlines (the code is cross-platform though).</p>
<p>The code is not well documented inside the source files as we explain it in great details in the <a href="#user_manual">user's manual</a>. Some files don't have corresponding
files in some languages as the features implemented just don't have an equivalent in that languages (for instance, the Google gflags library is missing in Java and C#).</p>
<h5>Coding styles we follow:</h5> 
<p>
<dl>
	<dt>C++</dt><dd><a href="http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml">Google C++ Style Guide</a></dd>
	<dt>Python</dt><dd><a href="http://google-styleguide.googlecode.com/svn/trunk/pyguide.html">Google Python Style Guide</a></dd>
</dl>
</p>
<h5>Coding styles we try to follow:</h5> 
<p>
<dl>
	<dt>Java</dt><dd><a href="https://sites.google.com/a/android.com/opensource/submit-patches/code-style-guide">Android Code Style Rules</a></dd>
	<dt>C#</dt><dd><a href="http://code.google.com/p/google-api-dotnet-client/wiki/CodingStandards">google-api-dotnet-client Coding standards</a></dd>
</dl>
</p>

<h5>Code:</h5> 

<p>Everything: <a href="http://or-tools.googlecode.com/files/tutorials_all_examples.zip">tutorial_all_examples.zip</a></p>

<p>
<div class="examples_list">
<ul>
<li class="language" id="C++">C++</li>

<dl>
	<dt>all:</dt><dd><a href="http://or-tools.googlecode.com/files/tutorials_c++_examples.zip">tutorial_c++_examples.zip</a></dd>
	<dt>chap2:</dt><dd><a href="tutorials/c++/chap2/cp_is_fun1.cc">cp_is_fun1.cc</a> &nbsp; | &nbsp; <a href="tutorials/c++/chap2/cp_is_fun2.cc">cp_is_fun2.cc</a> &nbsp; | &nbsp;
	 <a href="tutorials/c++/chap2/cp_is_fun3.cc">cp_is_fun3.cc</a> &nbsp; | &nbsp;	<a href="tutorials/c++/chap2/cp_is_fun4.cc">cp_is_fun4.cc</a> </dd>
	<dt>chap3:</dt><dd><a href="tutorials/c++/chap3/golomb1.cc">golomb1.cc</a> &nbsp; | &nbsp; <a href="tutorials/c++/chap3/golomb2.cc">golomb2.cc</a> &nbsp; | &nbsp;
	 <a href="tutorials/c++/chap3/golomb3.cc">golomb3.cc</a> &nbsp; | &nbsp;	<a href="tutorials/c++/chap3/golomb4.cc">golomb4.cc</a> &nbsp; | &nbsp;	<a href="tutorials/c++/chap3/golomb5.cc">golomb5.cc</a>
	 &nbsp; | &nbsp;	<a href="tutorials/c++/chap3/golomb6.cc">golomb6.cc</a></dd>
</dl>

<li class="language" id="Python">Python</li>
<dl>
	<dt>all:</dt><dd><a href="http://or-tools.googlecode.com/files/tutorials_python_examples.zip">tutorial_python_examples.zip</a></dd>
	<dt>chap2:</dt><dd><a href="tutorials/python/chap2/cp_is_fun1.py">cp_is_fun1.py</a> &nbsp; | &nbsp; <a href="tutorials/python/chap2/cp_is_fun2.py">cp_is_fun2.py</a> &nbsp; | &nbsp;
	 <a href="tutorials/python/chap2/cp_is_fun3.py">cp_is_fun3.py</a> &nbsp; | &nbsp;	<a href="tutorials/python/chap2/cp_is_fun4.py">cp_is_fun4.py</a> </dd>
	<dt>chap3:</dt><dd></dd>
</dl>

<li class="language" id="Java">Java</li>
<dl>
	<dt>all:</dt><dd><a href="http://or-tools.googlecode.com/files/tutorials_java_examples.zip">tutorial_java_examples.zip</a></dd>
	<dt>chap2:</dt><dd><a href="tutorials/java/com/google/ortools/tutorial/chap2/CpIsFun1.java">CpIsFun1.java</a> &nbsp; | &nbsp; <a href="tutorials/java/com/google/ortools/tutorial/chap2/CpIsFun2.java">CpIsFun2.java</a> &nbsp; | &nbsp;
	 <span class="empty">CpIsFun3.java</span> &nbsp; | &nbsp;	<a href="tutorials/java/com/google/ortools/tutorial/chap2/CpIsFun4.java">CpIsFun4.java</a> </dd>
	<dt>chap3:</dt><dd></dd>
</dl>

<li class="language" id="Csharp">C#</li>
<dl>
	<dt>all:</dt><dd><a href="http://or-tools.googlecode.com/files/tutorials_csharp_examples.zip">tutorial_csharp_examples.zip</a></dd>
	<dt>chap2:</dt><dd><a href="tutorials/csharp/chap2/cp_is_fun1.cs">cp_is_fun1.cs</a> &nbsp; | &nbsp; <a href="tutorials/csharp/chap2/cp_is_fun2.cs">cp_is_fun2.cs</a> &nbsp; | &nbsp;
	 <span class="empty">cp_is_fun3.cs</span> &nbsp; | &nbsp;	<a href="tutorials/csharp/chap2/cp_is_fun4.cs">cp_is_fun4.cs</a> </dd>
	<dt>chap3:</dt><dd></dd>
</dl>
</ul>
</div>
</p>

<hr>
<h2 id="presentation_slides">The presentation slides</h2>
<hr>
<p>These presentation slides are intended for a 50 minutes session.</p>

<h4>Slides</h4>
<p>
<div class="examples_list">
<dl>
	<dt>chap2:</dt><dd><a href="http://or-tools.googlecode.com/files/chap2_slides.pdf.zip">Slides</a> &nbsp; | &nbsp; <a href="http://or-tools.googlecode.com/files/chap2_handouts.pdf.zip">Handouts</a></dd>
</dl>
</div>
</p>

<hr>
<h2 id="lab_sessions">The lab sessions</h2>
<hr>
<p>These lab sessions are intended for a 2x50 minutes session with a computer.</p>

<h4>Labs</h4>
<p>
<div class="examples_list">
<dl>
	<dt>chap2:</dt><dd><a href="labs/lab_chap2_A4.pdf">lab_chap2_A4.pdf</a> &nbsp; | &nbsp; <a href="labs/lab_chap2_USLetter.pdf">lab_chap2_USLetter.pdf</a></dd>
</dl>
</div>
</p>


<hr>
<div class="footer">© Copyright 2012, Google</div>

</div>
</body>
</html>
